const express = require('express')

const app = express()

// 内存数据库 本地的数组或者对象
const db = []

// 登陆授权中间件 做一个登陆中间件
const auth = (req, res, next) => {
  const { user, pwd } = req.query;
  const flag = db.some(v => v.user === user && v.pwd === pwd);
  if (flag) {
    next()
  } else {
    res.status(401).send(`账号密码不正确`)
  }
}

// 中间件可以使用多个，会按照顺序执行
app.get('/login', (req, res, next) => {
  const { query } = req;
  db.push(query)
  res.send({
    code: 0,
    db
  })
})

// 接口
app.get('/list', auth, (req, res, next) => {
  res.send(`<h2>
  我是list页面，我很安全，你不登陆，你就不能访问我，目前是：</h2>
  <h1 style="color:red">${req.query.user} ---> 登陆了我的平台</h1>`)
})

// 错误处理中间件 放置在所有路由的最下面，都找不着的时候，就找我，
// 但凡能找到一个 ，就不找我了
app.use((req, res, next) => {
  res.writeHead(200, {
    "Content-type": "text/html;charset=utf-8"
  })
  res.end('<h1>404页面</h1>')
})


app.listen(8080, () => console.log(8080))